home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / filesystem.squashfs / usr / include / linux / ncp_fs.h < prev    next >
C/C++ Source or Header  |  2009-10-16  |  3KB  |  148 lines

  1. /*
  2.  *  ncp_fs.h
  3.  *
  4.  *  Copyright (C) 1995, 1996 by Volker Lendecke
  5.  *
  6.  */
  7.  
  8. #ifndef _LINUX_NCP_FS_H
  9. #define _LINUX_NCP_FS_H
  10.  
  11. #include <linux/fs.h>
  12. #include <linux/in.h>
  13. #include <linux/types.h>
  14. #include <linux/magic.h>
  15.  
  16. #include <linux/ipx.h>
  17. #include <linux/ncp_no.h>
  18.  
  19. /*
  20.  * ioctl commands
  21.  */
  22.  
  23. struct ncp_ioctl_request {
  24.     unsigned int function;
  25.     unsigned int size;
  26.     char *data;
  27. };
  28.  
  29. struct ncp_fs_info {
  30.     int version;
  31.     struct sockaddr_ipx addr;
  32.     __kernel_uid_t mounted_uid;
  33.     int connection;        /* Connection number the server assigned us */
  34.     int buffer_size;    /* The negotiated buffer size, to be
  35.                    used for read/write requests! */
  36.  
  37.     int volume_number;
  38.     __le32 directory_id;
  39. };
  40.  
  41. struct ncp_fs_info_v2 {
  42.     int version;
  43.     unsigned long mounted_uid;
  44.     unsigned int connection;
  45.     unsigned int buffer_size;
  46.  
  47.     unsigned int volume_number;
  48.     __le32 directory_id;
  49.  
  50.     __u32 dummy1;
  51.     __u32 dummy2;
  52.     __u32 dummy3;
  53. };
  54.  
  55. struct ncp_sign_init
  56. {
  57.     char sign_root[8];
  58.     char sign_last[16];
  59. };
  60.  
  61. struct ncp_lock_ioctl
  62. {
  63. #define NCP_LOCK_LOG    0
  64. #define NCP_LOCK_SH    1
  65. #define NCP_LOCK_EX    2
  66. #define NCP_LOCK_CLEAR    256
  67.     int        cmd;
  68.     int        origin;
  69.     unsigned int    offset;
  70.     unsigned int    length;
  71. #define NCP_LOCK_DEFAULT_TIMEOUT    18
  72. #define NCP_LOCK_MAX_TIMEOUT        180
  73.     int        timeout;
  74. };
  75.  
  76. struct ncp_setroot_ioctl
  77. {
  78.     int        volNumber;
  79.     int        namespace;
  80.     __le32        dirEntNum;
  81. };
  82.  
  83. struct ncp_objectname_ioctl
  84. {
  85. #define NCP_AUTH_NONE    0x00
  86. #define NCP_AUTH_BIND    0x31
  87. #define NCP_AUTH_NDS    0x32
  88.     int        auth_type;
  89.     size_t        object_name_len;
  90.     void *    object_name;    /* a userspace data, in most cases user name */
  91. };
  92.  
  93. struct ncp_privatedata_ioctl
  94. {
  95.     size_t        len;
  96.     void *    data;        /* ~1000 for NDS */
  97. };
  98.  
  99. /* NLS charsets by ioctl */
  100. #define NCP_IOCSNAME_LEN 20
  101. struct ncp_nls_ioctl
  102. {
  103.     unsigned char codepage[NCP_IOCSNAME_LEN+1];
  104.     unsigned char iocharset[NCP_IOCSNAME_LEN+1];
  105. };
  106.  
  107. #define    NCP_IOC_NCPREQUEST        _IOR('n', 1, struct ncp_ioctl_request)
  108. #define    NCP_IOC_GETMOUNTUID        _IOW('n', 2, __kernel_old_uid_t)
  109. #define NCP_IOC_GETMOUNTUID2        _IOW('n', 2, unsigned long)
  110.  
  111. #define NCP_IOC_CONN_LOGGED_IN          _IO('n', 3)
  112.  
  113. #define NCP_GET_FS_INFO_VERSION    (1)
  114. #define NCP_IOC_GET_FS_INFO             _IOWR('n', 4, struct ncp_fs_info)
  115. #define NCP_GET_FS_INFO_VERSION_V2 (2)
  116. #define NCP_IOC_GET_FS_INFO_V2        _IOWR('n', 4, struct ncp_fs_info_v2)
  117.  
  118. #define NCP_IOC_SIGN_INIT        _IOR('n', 5, struct ncp_sign_init)
  119. #define NCP_IOC_SIGN_WANTED        _IOR('n', 6, int)
  120. #define NCP_IOC_SET_SIGN_WANTED        _IOW('n', 6, int)
  121.  
  122. #define NCP_IOC_LOCKUNLOCK        _IOR('n', 7, struct ncp_lock_ioctl)
  123.  
  124. #define NCP_IOC_GETROOT            _IOW('n', 8, struct ncp_setroot_ioctl)
  125. #define NCP_IOC_SETROOT            _IOR('n', 8, struct ncp_setroot_ioctl)
  126.  
  127. #define NCP_IOC_GETOBJECTNAME        _IOWR('n', 9, struct ncp_objectname_ioctl)
  128. #define NCP_IOC_SETOBJECTNAME        _IOR('n', 9, struct ncp_objectname_ioctl)
  129. #define NCP_IOC_GETPRIVATEDATA        _IOWR('n', 10, struct ncp_privatedata_ioctl)
  130. #define NCP_IOC_SETPRIVATEDATA        _IOR('n', 10, struct ncp_privatedata_ioctl)
  131.  
  132. #define NCP_IOC_GETCHARSETS        _IOWR('n', 11, struct ncp_nls_ioctl)
  133. #define NCP_IOC_SETCHARSETS        _IOR('n', 11, struct ncp_nls_ioctl)
  134.  
  135. #define NCP_IOC_GETDENTRYTTL        _IOW('n', 12, __u32)
  136. #define NCP_IOC_SETDENTRYTTL        _IOR('n', 12, __u32)
  137.  
  138. /*
  139.  * The packet size to allocate. One page should be enough.
  140.  */
  141. #define NCP_PACKET_SIZE 4070
  142.  
  143. #define NCP_MAXPATHLEN 255
  144. #define NCP_MAXNAMELEN 14
  145.  
  146.  
  147. #endif                /* _LINUX_NCP_FS_H */
  148.